package com.leonardo.tg.example;

import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;

public class CompromissoForm extends Form {

	private Integer holdKey;
	
	private TextField nome = new TextField("Nome", null, 30, TextField.ANY);
	private DateField data = new DateField("Data", DateField.DATE_TIME);
	private ChoiceGroup confirmada = new ChoiceGroup("Confirmada", ChoiceGroup.EXCLUSIVE);
	private ChoiceGroup prioridade = new ChoiceGroup("Prioridade", ChoiceGroup.POPUP);
	private TextField descricao = new TextField("Descrição", null, 100, TextField.ANY);
	private ChoiceGroup completa = new ChoiceGroup("Completa", ChoiceGroup.EXCLUSIVE);
	
	public CompromissoForm() {
		super("Compromisso");
		create();
	}
	
	public CompromissoForm(Compromisso compromisso) {
		super("Compromisso");
		create();
		populate(compromisso);
	}
	
	private void create() {
		confirmada.append("Sim", null);
		confirmada.append("Não", null);
		
		prioridade.append("Alta", null);
		prioridade.append("Média", null);
		prioridade.append("Baixa", null);
		
		completa.append("Sim", null);
		completa.append("Não", null);
		
		append(nome);
		append(data);
		append(confirmada);
		append(prioridade);
		append(descricao);
		append(completa);
	}
	
	private void populate(Compromisso compromisso) {
		nome.setString(compromisso.getNome());
		data.setDate(compromisso.getData());
		confirmada.setSelectedIndex(compromisso.getConfirmada().booleanValue() ? 0 : 1, true);
		prioridade.setSelectedIndex(compromisso.getPrioridade(), true);
		descricao.setString(compromisso.getDescricao());
		completa.setSelectedIndex(compromisso.getCompleta().booleanValue() ? 0 : 1, true);
		
		holdKey = compromisso.getKey();
	}
	
	public Compromisso getCompromisso() {
		Compromisso compromisso = new Compromisso();
		compromisso.setKey(holdKey);
		compromisso.setNome(nome.getString());
		compromisso.setData(data.getDate());
		compromisso.setConfirmada(new Boolean(confirmada.getSelectedIndex() == 0));
		compromisso.setPrioridade(prioridade.getSelectedIndex());
		compromisso.setDescricao(descricao.getString());
		compromisso.setCompleta(new Boolean(completa.getSelectedIndex() == 0));
		
		return compromisso;
	}
}
